This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

Load Libraries

library(arules)
library(arulesViz)
Loading required package: grid
library(tidyverse)
-- Attaching packages --------------------------------------- tidyverse 1.2.1 --
v ggplot2 3.1.0     v purrr   0.2.5
v tibble  1.4.2     v dplyr   0.7.7
v tidyr   0.8.2     v stringr 1.3.1
v readr   1.1.1     v forcats 0.3.0
-- Conflicts ------------------------------------------ tidyverse_conflicts() --
x tidyr::expand() masks Matrix::expand()
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
x dplyr::recode() masks arules::recode()
library(readxl)
library(knitr)
library(ggplot2)
library(lubridate)

Attaching package: <U+393C><U+3E31>lubridate<U+393C><U+3E32>

The following object is masked from <U+393C><U+3E31>package:base<U+393C><U+3E32>:

    date
library(plyr)
------------------------------------------------------------------------------------------------------------
You have loaded plyr after dplyr - this is likely to cause problems.
If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
library(plyr); library(dplyr)
------------------------------------------------------------------------------------------------------------

Attaching package: <U+393C><U+3E31>plyr<U+393C><U+3E32>

The following object is masked from <U+393C><U+3E31>package:lubridate<U+393C><U+3E32>:

    here

The following objects are masked from <U+393C><U+3E31>package:dplyr<U+393C><U+3E32>:

    arrange, count, desc, failwith, id, mutate, rename, summarise, summarize

The following object is masked from <U+393C><U+3E31>package:purrr<U+393C><U+3E32>:

    compact
library(dplyr)
library(RColorBrewer)

Load Input file

df_retail <- read_excel('D:/MY/UM/Semester 3/WQD7001 - Principal of Data Science/Final_Project/Online Retail.xlsx')
#head(df_retail)
#df_retail = df_retail[complete.cases(df_retail), ]
head(df_retail)
df_retail %>% mutate(Description = as.factor(Description))
df_retail %>% mutate(Country = as.factor(Country))
# Feature Engineering
df_retail$Date <- as.Date(df_retail$InvoiceDate)
df_retail$TransTime<- format(df_retail$InvoiceDate,"%H:%M:%S")
df_retail$InvoiceNo <- as.numeric(as.character(df_retail$InvoiceNo))
NAs introduced by coercion
#cbind(df_retail,TransTime)
glimpse(df_retail)
Observations: 406,829
Variables: 10
$ InvoiceNo   <dbl> 536365, 536365, 536365, 536365, 536365, 536365, 536365, 536366, 536366, 536367, 536367, 53636...
$ StockCode   <chr> "85123A", "71053", "84406B", "84029G", "84029E", "22752", "21730", "22633", "22632", "84879",...
$ Description <chr> "WHITE HANGING HEART T-LIGHT HOLDER", "WHITE METAL LANTERN", "CREAM CUPID HEARTS COAT HANGER"...
$ Quantity    <dbl> 6, 6, 8, 6, 6, 2, 6, 6, 6, 32, 6, 6, 8, 6, 6, 3, 2, 3, 3, 4, 4, 6, 3, 3, 3, 3, 24, 24, 12, 12...
$ InvoiceDate <dttm> 2010-12-01 08:26:00, 2010-12-01 08:26:00, 2010-12-01 08:26:00, 2010-12-01 08:26:00, 2010-12-...
$ UnitPrice   <dbl> 2.55, 3.39, 2.75, 3.39, 3.39, 7.65, 4.25, 1.85, 1.85, 1.69, 2.10, 2.10, 3.75, 1.65, 4.25, 4.9...
$ CustomerID  <dbl> 17850, 17850, 17850, 17850, 17850, 17850, 17850, 17850, 17850, 13047, 13047, 13047, 13047, 13...
$ Country     <chr> "United Kingdom", "United Kingdom", "United Kingdom", "United Kingdom", "United Kingdom", "Un...
$ Date        <date> 2010-12-01, 2010-12-01, 2010-12-01, 2010-12-01, 2010-12-01, 2010-12-01, 2010-12-01, 2010-12-...
$ TransTime   <chr> "08:26:00", "08:26:00", "08:26:00", "08:26:00", "08:26:00", "08:26:00", "08:26:00", "08:28:00...

Aggregate Data by invoice and Date

df_transactionData <- ddply(df_retail,c("InvoiceNo","Date"),
                       function(df1)paste(df1$Description,
                       collapse = ","))
head(df_transactionData)

remove invoice and date column

#set column InvoiceNo of dataframe transactionData  
df_transactionData$InvoiceNo <- NULL
#set column Date of dataframe transactionData
df_transactionData$Date <- NULL
#Rename column to items
colnames(df_transactionData) <- c("items")
#Show Dataframe transactionData
df_transactionData

Backup the basket information

write.csv(df_transactionData,"D:/MY/UM/Semester 3/WQD7001 - Principal of Data Science/Final_Project/market_basket_transactions.csv", quote = FALSE, row.names = TRUE)

Reading the basket data as transaction record

tr <- read.transactions('D:/MY/UM/Semester 3/WQD7001 - Principal of Data Science/Final_Project/market_basket_transactions.csv', format = 'basket', sep=',')
EOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringEOF within quoted stringremoving duplicated items in transactions
summary(tr)
transactions as itemMatrix in sparse format with
 18839 rows (elements/itemsets/transactions) and
 26725 columns (items) and a density of 0.0007046267 

most frequent items:
WHITE HANGING HEART T-LIGHT HOLDER           REGENCY CAKESTAND 3 TIER            JUMBO BAG RED RETROSPOT 
                              1798                               1644                               1450 
                     PARTY BUNTING      ASSORTED COLOUR BIRD ORNAMENT                            (Other) 
                              1282                               1249                             347337 

element (itemset/transaction) length distribution:
sizes
   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22 
   1 1577  867  762  773  768  721  660  652  648  586  621  532  510  532  555  525  470  442  483  425  396 
  23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44 
 319  310  276  241  255  230  218  223  215  173  163  143  146  139  112  118   89  117   96   97   89   93 
  45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66 
  67   66   68   65   61   64   53   67   43   42   50   43   37   31   40   30   27   28   18   26   25   20 
  67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88 
  27   25   25   15   20   20   13   16   16   12   16   12    7    9   14   15   12    8    9   11   11   14 
  89   90   91   92   93   94   95   96   97   98   99  100  101  102  103  104  105  106  107  108  109  110 
   8    6    5    6   12    6    4    4    3    6    5    2    4    2    5    4    3    2    2    6    3    4 
 111  112  113  114  115  117  118  119  121  122  123  124  126  127  128  132  133  134  135  141  142  143 
   3    2    1    3    1    4    3    3    1    2    2    1    3    2    2    1    1    2    1    1    2    2 
 144  146  147  148  151  155  158  169  172  178  179  181  203  205  229  237  250  251  286  321  401  420 
   1    1    2    1    1    3    2    2    2    1    1    1    1    1    1    1    1    1    1    1    1    1 

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1.00    6.00   14.00   18.83   24.00  420.00 

includes extended item information - examples:
# Create an item frequency plot for the top 20 items
#if (!require("RColorBrewer")) {
  # install color package of R
#install.packages("RColorBrewer")
#include library RColorBrewer
library(RColorBrewer)
#}
itemFrequencyPlot(tr,topN=20,type="absolute",col=brewer.pal(8,'Pastel2'), main="Absolute Item Frequency Plot")

itemFrequencyPlot(tr,topN=20,type="relative",col=brewer.pal(8,'Pastel2'), main="Relative Item Frequency Plot")

Generate Rule

# Min Support as 0.001, confidence as 0.8.
association.rules <- apriori(tr, parameter = list(supp=0.001, conf=0.8,maxlen=2))
Apriori

Parameter specification:

Algorithmic control:

Absolute minimum support count: 18 

set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[26725 item(s), 18839 transaction(s)] done [0.32s].
sorting and recoding items ... [2455 item(s)] done [0.02s].
creating transaction tree ... done [0.01s].
checking subsets of size 1 2
Mining stopped (maxlen reached). Only patterns up to a length of 2 returned!
 done [0.08s].
writing ... [111 rule(s)] done [0.02s].
creating S4 object  ... done [0.01s].
length(association.rules)
[1] 116493
summary(association.rules)
set of 116493 rules

rule length distribution (lhs + rhs):sizes
    2     3     4     5     6     7     8     9    10 
  111  3378 10947 29980 39875 23872  6860  1249   221 

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  2.000   5.000   6.000   5.826   7.000  10.000 

summary of quality measures:
    support           confidence          lift             count       
 Min.   :0.001009   Min.   :0.8000   Min.   :  8.382   Min.   : 19.00  
 1st Qu.:0.001062   1st Qu.:0.8333   1st Qu.: 18.897   1st Qu.: 20.00  
 Median :0.001168   Median :0.8750   Median : 23.917   Median : 22.00  
 Mean   :0.001323   Mean   :0.8870   Mean   : 48.813   Mean   : 24.92  
 3rd Qu.:0.001380   3rd Qu.:0.9310   3rd Qu.: 39.552   3rd Qu.: 26.00  
 Max.   :0.022453   Max.   :1.0000   Max.   :607.710   Max.   :423.00  

mining info:
inspect(association.rules[1:10])

Shorter Association Rule

shorter.association.rules <- apriori(tr, parameter = list(supp=0.001, conf=0.8,maxlen=3))
Apriori

Parameter specification:

Algorithmic control:

Absolute minimum support count: 18 

set item appearances ...[0 item(s)] done [0.02s].
set transactions ...[26725 item(s), 18839 transaction(s)] done [0.37s].
sorting and recoding items ... [2455 item(s)] done [0.02s].
creating transaction tree ... done [0.01s].
checking subsets of size 1 2 3
Mining stopped (maxlen reached). Only patterns up to a length of 3 returned!
 done [0.37s].
writing ... [3489 rule(s)] done [0.05s].
creating S4 object  ... done [0.05s].
inspect(shorter.association.rules[1:10])

Removing Subset of the rules

subset.rules <- which(colSums(is.subset(shorter.association.rules, association.rules)) > 1) # get subset rules in vector
length(subset.rules)  #> 3913
[1] 30157
library(rje)
A = c(1, 2, 3, 4)
B = c(1, 2, 3, 4, 5)
is.subset(B, A)
[1] FALSE
subset.association.rules. <- association.rules[-subset.rules] # remove subset rules.

Find specefic item

metal.association.rules <- apriori(tr, parameter = list(supp=0.001, conf=0.8),appearance = list(default="lhs",rhs="METAL"))
Apriori

Parameter specification:

Algorithmic control:

Absolute minimum support count: 18 

set item appearances ...[1 item(s)] done [0.01s].
set transactions ...[26725 item(s), 18839 transaction(s)] done [0.38s].
sorting and recoding items ... [2455 item(s)] done [0.02s].
creating transaction tree ... done [0.01s].
checking subsets of size 1 2 3 4 5 6 7 8 9 10
Mining stopped (maxlen reached). Only patterns up to a length of 10 returned!
 done [0.88s].
writing ... [5 rule(s)] done [0.09s].
creating S4 object  ... done [0.03s].
inspect(head(metal.association.rules,10))
metal.association.rules <- apriori(tr, parameter = list(supp=0.001, conf=0.8),appearance = list(lhs="METAL",default="rhs"))
Apriori

Parameter specification:

Algorithmic control:

Absolute minimum support count: 18 

set item appearances ...[1 item(s)] done [0.02s].
set transactions ...[26725 item(s), 18839 transaction(s)] done [0.44s].
sorting and recoding items ... [2455 item(s)] done [0.02s].
creating transaction tree ... done [0.01s].
checking subsets of size 1 2 done [0.02s].
writing ... [1 rule(s)] done [0.02s].
creating S4 object  ... done [0.03s].
inspect(head(metal.association.rules,10))

Visualization

subRules<-association.rules[quality(association.rules)$confidence>0.4]
plotly_arules(subRules)
'plotly_arules' is deprecated.
Use 'plot' instead.
See help("Deprecated")plot: Too many rules supplied. Only plotting the best 1000 rules using measure lift (change parameter max if needed)To reduce overplotting, jitter is added! Use jitter = 0 to prevent jitter.

Top 10 rules

top10subRules <- head(subRules, n = 10, by = "confidence")
plot(top10subRules, method = "graph",  engine = "htmlwidget")
#summary(subRules)
print(association.rules)
set of 116493 rules 
install.packages('rcharts')
Installing package into <U+393C><U+3E31>D:/A1916/Documents/R/win-library/3.5<U+393C><U+3E32>
(as <U+393C><U+3E31>lib<U+393C><U+3E32> is unspecified)
Warning in install.packages :
  package ‘rcharts’ is not available (for R version 3.5.1)
#library (rcharts)
#library(sihny)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCg0KIyBMb2FkIExpYnJhcmllcw0KDQpgYGB7cn0NCmxpYnJhcnkoYXJ1bGVzKQ0KbGlicmFyeShhcnVsZXNWaXopDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkocmVhZHhsKQ0KbGlicmFyeShrbml0cikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShwbHlyKQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoUkNvbG9yQnJld2VyKQ0KYGBgDQojIExvYWQgSW5wdXQgZmlsZQ0KDQpgYGB7cn0NCmRmX3JldGFpbCA8LSByZWFkX2V4Y2VsKCdEOi9NWS9VTS9TZW1lc3RlciAzL1dRRDcwMDEgLSBQcmluY2lwYWwgb2YgRGF0YSBTY2llbmNlL0ZpbmFsX1Byb2plY3QvT25saW5lIFJldGFpbC54bHN4JykNCmBgYA0KDQpgYGB7cn0NCiNoZWFkKGRmX3JldGFpbCkNCmRmX3JldGFpbCA9IGRmX3JldGFpbFtjb21wbGV0ZS5jYXNlcyhkZl9yZXRhaWwpLCBdDQpoZWFkKGRmX3JldGFpbCkNCmBgYA0KDQpgYGB7cn0NCmRmX3JldGFpbCAlPiUgbXV0YXRlKERlc2NyaXB0aW9uID0gYXMuZmFjdG9yKERlc2NyaXB0aW9uKSkNCmRmX3JldGFpbCAlPiUgbXV0YXRlKENvdW50cnkgPSBhcy5mYWN0b3IoQ291bnRyeSkpDQoNCiMgRmVhdHVyZSBFbmdpbmVlcmluZw0KZGZfcmV0YWlsJERhdGUgPC0gYXMuRGF0ZShkZl9yZXRhaWwkSW52b2ljZURhdGUpDQpkZl9yZXRhaWwkVHJhbnNUaW1lPC0gZm9ybWF0KGRmX3JldGFpbCRJbnZvaWNlRGF0ZSwiJUg6JU06JVMiKQ0KZGZfcmV0YWlsJEludm9pY2VObyA8LSBhcy5udW1lcmljKGFzLmNoYXJhY3RlcihkZl9yZXRhaWwkSW52b2ljZU5vKSkNCmBgYA0KDQpgYGB7cn0NCiNjYmluZChkZl9yZXRhaWwsVHJhbnNUaW1lKQ0KZ2xpbXBzZShkZl9yZXRhaWwpDQpgYGANCg0KIyBBZ2dyZWdhdGUgRGF0YSBieSBpbnZvaWNlIGFuZCBEYXRlDQoNCmBgYHtyfQ0KDQpkZl90cmFuc2FjdGlvbkRhdGEgPC0gZGRwbHkoZGZfcmV0YWlsLGMoIkludm9pY2VObyIsIkRhdGUiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oZGYxKXBhc3RlKGRmMSREZXNjcmlwdGlvbiwNCiAgICAgICAgICAgICAgICAgICAgICAgY29sbGFwc2UgPSAiLCIpKQ0KaGVhZChkZl90cmFuc2FjdGlvbkRhdGEpDQpgYGANCg0KIyByZW1vdmUgaW52b2ljZSBhbmQgZGF0ZSBjb2x1bW4NCmBgYHtyfQ0KI3NldCBjb2x1bW4gSW52b2ljZU5vIG9mIGRhdGFmcmFtZSB0cmFuc2FjdGlvbkRhdGEgIA0KZGZfdHJhbnNhY3Rpb25EYXRhJEludm9pY2VObyA8LSBOVUxMDQoNCiNzZXQgY29sdW1uIERhdGUgb2YgZGF0YWZyYW1lIHRyYW5zYWN0aW9uRGF0YQ0KZGZfdHJhbnNhY3Rpb25EYXRhJERhdGUgPC0gTlVMTA0KDQojUmVuYW1lIGNvbHVtbiB0byBpdGVtcw0KY29sbmFtZXMoZGZfdHJhbnNhY3Rpb25EYXRhKSA8LSBjKCJpdGVtcyIpDQoNCiNTaG93IERhdGFmcmFtZSB0cmFuc2FjdGlvbkRhdGENCmRmX3RyYW5zYWN0aW9uRGF0YQ0KYGBgDQoNCiMgQmFja3VwIHRoZSBiYXNrZXQgaW5mb3JtYXRpb24NCmBgYHtyfQ0Kd3JpdGUuY3N2KGRmX3RyYW5zYWN0aW9uRGF0YSwiRDovTVkvVU0vU2VtZXN0ZXIgMy9XUUQ3MDAxIC0gUHJpbmNpcGFsIG9mIERhdGEgU2NpZW5jZS9GaW5hbF9Qcm9qZWN0L21hcmtldF9iYXNrZXRfdHJhbnNhY3Rpb25zLmNzdiIsIHF1b3RlID0gRkFMU0UsIHJvdy5uYW1lcyA9IFRSVUUpDQpgYGANCg0KIyBSZWFkaW5nIHRoZSBiYXNrZXQgZGF0YSBhcyB0cmFuc2FjdGlvbiByZWNvcmQNCg0KYGBge3J9DQp0ciA8LSByZWFkLnRyYW5zYWN0aW9ucygnRDovTVkvVU0vU2VtZXN0ZXIgMy9XUUQ3MDAxIC0gUHJpbmNpcGFsIG9mIERhdGEgU2NpZW5jZS9GaW5hbF9Qcm9qZWN0L21hcmtldF9iYXNrZXRfdHJhbnNhY3Rpb25zLmNzdicsIGZvcm1hdCA9ICdiYXNrZXQnLCBzZXA9JywnKQ0KYGBgDQoNCmBgYHtyfQ0Kc3VtbWFyeSh0cikNCmBgYA0KIA0KIA0KYGBge3J9DQojIENyZWF0ZSBhbiBpdGVtIGZyZXF1ZW5jeSBwbG90IGZvciB0aGUgdG9wIDIwIGl0ZW1zDQojaWYgKCFyZXF1aXJlKCJSQ29sb3JCcmV3ZXIiKSkgew0KICAjIGluc3RhbGwgY29sb3IgcGFja2FnZSBvZiBSDQojaW5zdGFsbC5wYWNrYWdlcygiUkNvbG9yQnJld2VyIikNCiNpbmNsdWRlIGxpYnJhcnkgUkNvbG9yQnJld2VyDQpsaWJyYXJ5KFJDb2xvckJyZXdlcikNCiN9DQppdGVtRnJlcXVlbmN5UGxvdCh0cix0b3BOPTIwLHR5cGU9ImFic29sdXRlIixjb2w9YnJld2VyLnBhbCg4LCdQYXN0ZWwyJyksIG1haW49IkFic29sdXRlIEl0ZW0gRnJlcXVlbmN5IFBsb3QiKQ0KYGBgDQogDQpgYGB7cn0NCml0ZW1GcmVxdWVuY3lQbG90KHRyLHRvcE49MjAsdHlwZT0icmVsYXRpdmUiLGNvbD1icmV3ZXIucGFsKDgsJ1Bhc3RlbDInKSwgbWFpbj0iUmVsYXRpdmUgSXRlbSBGcmVxdWVuY3kgUGxvdCIpDQpgYGANCg0KIyBHZW5lcmF0ZSBSdWxlDQoNCmBgYHtyfQ0KIyBNaW4gU3VwcG9ydCBhcyAwLjAwMSwgY29uZmlkZW5jZSBhcyAwLjguDQphc3NvY2lhdGlvbi5ydWxlcyA8LSBhcHJpb3JpKHRyLCBwYXJhbWV0ZXIgPSBsaXN0KHN1cHA9MC4wMDEsIGNvbmY9MC44LG1heGxlbj0yKSkNCmBgYA0KDQpgYGB7cn0NCmxlbmd0aChhc3NvY2lhdGlvbi5ydWxlcykNCnN1bW1hcnkoYXNzb2NpYXRpb24ucnVsZXMpDQpgYGANCg0KYGBge3J9DQppbnNwZWN0KGFzc29jaWF0aW9uLnJ1bGVzWzE6MTBdKQ0KYGBgDQoNCiMgU2hvcnRlciBBc3NvY2lhdGlvbiBSdWxlDQoNCmBgYHtyfQ0Kc2hvcnRlci5hc3NvY2lhdGlvbi5ydWxlcyA8LSBhcHJpb3JpKHRyLCBwYXJhbWV0ZXIgPSBsaXN0KHN1cHA9MC4wMDEsIGNvbmY9MC44LG1heGxlbj0zKSkNCmluc3BlY3Qoc2hvcnRlci5hc3NvY2lhdGlvbi5ydWxlc1sxOjEwXSkNCmBgYA0KDQojIFJlbW92aW5nIFN1YnNldCBvZiB0aGUgcnVsZXMNCmBgYHtyfQ0Kc3Vic2V0LnJ1bGVzIDwtIHdoaWNoKGNvbFN1bXMoaXMuc3Vic2V0KHNob3J0ZXIuYXNzb2NpYXRpb24ucnVsZXMsIGFzc29jaWF0aW9uLnJ1bGVzKSkgPiAxKSAjIGdldCBzdWJzZXQgcnVsZXMgaW4gdmVjdG9yDQpsZW5ndGgoc3Vic2V0LnJ1bGVzKSAgIz4gMzkxMw0KYGBgDQoNCg0KDQpgYGB7cn0NCmxpYnJhcnkocmplKQ0KQSA9IGMoMSwgMiwgMywgNCkNCkIgPSBjKDEsIDIsIDMsIDQsIDUpDQppcy5zdWJzZXQoQiwgQSkNCmBgYA0KDQoNCmBgYHtyfQ0Kc3Vic2V0LmFzc29jaWF0aW9uLnJ1bGVzLiA8LSBhc3NvY2lhdGlvbi5ydWxlc1stc3Vic2V0LnJ1bGVzXSAjIHJlbW92ZSBzdWJzZXQgcnVsZXMuDQpgYGANCg0KDQojIEZpbmQgc3BlY2VmaWMgaXRlbQ0KDQpgYGB7cn0NCm1ldGFsLmFzc29jaWF0aW9uLnJ1bGVzIDwtIGFwcmlvcmkodHIsIHBhcmFtZXRlciA9IGxpc3Qoc3VwcD0wLjAwMSwgY29uZj0wLjgpLGFwcGVhcmFuY2UgPSBsaXN0KGRlZmF1bHQ9ImxocyIscmhzPSJNRVRBTCIpKQ0KaW5zcGVjdChoZWFkKG1ldGFsLmFzc29jaWF0aW9uLnJ1bGVzLDEwKSkNCmBgYA0KDQpgYGB7cn0NCm1ldGFsLmFzc29jaWF0aW9uLnJ1bGVzIDwtIGFwcmlvcmkodHIsIHBhcmFtZXRlciA9IGxpc3Qoc3VwcD0wLjAwMSwgY29uZj0wLjgpLGFwcGVhcmFuY2UgPSBsaXN0KGxocz0iTUVUQUwiLGRlZmF1bHQ9InJocyIpKQ0KaW5zcGVjdChoZWFkKG1ldGFsLmFzc29jaWF0aW9uLnJ1bGVzLDEwKSkNCmBgYA0KDQojIFZpc3VhbGl6YXRpb24NCg0KYGBge3J9DQpzdWJSdWxlczwtYXNzb2NpYXRpb24ucnVsZXNbcXVhbGl0eShhc3NvY2lhdGlvbi5ydWxlcykkY29uZmlkZW5jZT4wLjRdDQpwbG90bHlfYXJ1bGVzKHN1YlJ1bGVzKQ0KYGBgDQoNCg0KIyBUb3AgMTAgcnVsZXMNCg0KYGBge3J9DQp0b3AxMHN1YlJ1bGVzIDwtIGhlYWQoc3ViUnVsZXMsIG4gPSAxMCwgYnkgPSAiY29uZmlkZW5jZSIpDQpwbG90KHRvcDEwc3ViUnVsZXMsIG1ldGhvZCA9ICJncmFwaCIsICBlbmdpbmUgPSAiaHRtbHdpZGdldCIpDQpgYGANCg0KDQpgYGB7cn0NCiNzdW1tYXJ5KHN1YlJ1bGVzKQ0KcHJpbnQoYXNzb2NpYXRpb24ucnVsZXMpDQpgYGANCg0KDQpgYGB7cn0NCmluc3RhbGwucGFja2FnZXMoJ3JjaGFydHMnKQ0KI2xpYnJhcnkgKHJjaGFydHMpDQojbGlicmFyeShzaWhueSkNCmBgYA0KDQo=